XCP 功能介绍及原理解析
功能简介
XCP主要包含四个功能:
- 标定
- 测量(反馈一些变量的值供上位机或测量系统查看,如转速等)
- 编程和刷新(例如更新一部分地址的数据值,甚至重编程等,这部分用的较少,一般用 UDS)
- 对 ECU 功能进行旁路,简单来说就是模拟 ECU 的数据。
标定原理
XCP 比较关键的是 A2L 文件,这个文件是从程序的 map 文件中提取的。A2L 文件是提供给上位机使用的,用来进行标定。A2L 的标准定义如下:A2L 文件是一个标定的描述文件,基于文本格式,描述 ECU 的通信等相关的参数,以及标定,观测变量的地址以及物理值计算公式等。
标定其实就是在程序中创建一些变量,提供给应用部分使用。能够通过上位机来动态的改变变量的值,本质上就是实现了 XCP 写的功能。长城 ES13用到标定功能就是 EEM 电能量管理,从 EEM_Parameter.c 和 EEM_Parameter.h 中可以看到所有用到的变量,在 CVI 中将这些变量进行映射即可。至于 EEM 的核心逻辑,长城已经打包成库文件,并不能看到具体的实现。
测量原理
测量其实就是读取内存中的任意变量的值,这部分信息也是上位机根据 A2L 文件得出的。本质上就是实现了 XCP 读的功能。
编程和刷新
编程和刷新这部分功能跟 UDS 的刷写类似,不常用。